Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

Node / ReticulumProjects / LXMF.git / files / docs / example_sender.py

Displaying Raw • Download


docs/example_sender.py 62038573f1b249ef92c7005ff66ecfc1ef47d566 (62038573) Text, 3.94 KB

Tff7b72import T7ee787LXMF
Tff7b72import T7ee787RNS
Tff7b72import T7ee787time
Tff7b72import T7ee787random

Te6edf3random_names Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6ffTomTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffDelilahTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffNanceyTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffWilliamsTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffNeomiTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCurtisTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffAlexaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffTheodoraTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffTedTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffDinorahTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffNicolTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffDrusillaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffAnnalisaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffVerleneTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffLateshaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffTinaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffMiaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffBrockTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffTimothyTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffPhilipTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffWillianTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffReynaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffSimonaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffMimiTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffStanfordTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffFerneTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCatalinaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffLucieTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffJayeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffNatashaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffWillettaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffIsabelTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffEsperanzaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCiaraTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffEusebioTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffWilliamTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffElmaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffAngelicaTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCoreenTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffMelaniTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffJonathanTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffMarylandTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffCarolineTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffGreggTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffOraTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffJacquiTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffLettyTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffRoselleTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffOraleeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffAnglaTa5d6ff"Tb4b4b4]
Te6edf3random_titles Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6ffLong timeTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffHi againTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffHi thereTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffTest messageTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffSomething differentTa5d6ff"Tb4b4b4]
Te6edf3random_msgs Tff7b72= Tb4b4b4[Ta5d6ff"Ta5d6ffIf wishes were horses then beggars might fly. Stuff like that. ItTa5d6ff'Ta5d6ffs enough to drive you crazy.Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff'Ta5d6ffMy ident cards were stolen,Ta5d6ff'Ta5d6ff Jason said. Ta5d6ff'Ta5d6ffThat fivehundred-dollar bill is yours if you can get me to someone who can replace them. If youTa5d6ff'Ta5d6ffre going to do it, do it right now; ITa5d6ff'Ta5d6ffm not going to wait.Ta5d6ff'Ta5d6ff Wait to be picked up by a pol or a nat, he thought. Caught here in this rundown dingy hotel.Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffA six, no matter what the external circumstances, will always prevail. Because thatTa5d6ff'Ta5d6ffs the way they genetically defined us.Ta5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ff'Ta5d6ffShould be there in an hour,Ta5d6ff'Ta5d6ff he called back over his shoulder to Chuck. Then he added, in an afterthought, Ta5d6ff'Ta5d6ffWonder if the computer’s finished its run. It was due about now.Ta5d6ff'Ta5d6ff. Chuck didn’t reply, so George swung round in his saddle. He could just see Chuck’s face, a white oval turned toward the sky.Ta5d6ff"Tb4b4b4]

Tff7b72def Td2a8ffdelivery_callbackTb4b4b4(Te6edf3messageTb4b4b4)Tb4b4b4:
Tff7b72pass

Te6edf3r Tff7b72= Te6edf3RNSTff7b72.Td2a8ffReticulumTb4b4b4(Tb4b4b4)
Te6edf3router Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMRouterTb4b4b4(Te6edf3storagepathTff7b72=Ta5d6ff"Ta5d6ff./tmp2Ta5d6ff"Tb4b4b4)
Te6edf3routerTff7b72.Td2a8ffregister_delivery_callbackTb4b4b4(Te6edf3delivery_callbackTb4b4b4)
Te6edf3ident Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTb4b4b4(Tb4b4b4)
Te6edf3source Tff7b72= Te6edf3routerTff7b72.Td2a8ffregister_delivery_identityTb4b4b4(Te6edf3identTb4b4b4, Te6edf3display_nameTff7b72=Te6edf3random_namesTb4b4b4[Te6edf3randomTff7b72.Td2a8ffrandintTb4b4b4(T79c0ff0Tb4b4b4,Tffa657lenTb4b4b4(Te6edf3random_namesTb4b4b4)Tff7b72-T79c0ff1Tb4b4b4)Tb4b4b4]Tb4b4b4, Te6edf3stamp_costTff7b72=T79c0ff8Tb4b4b4)
Te6edf3routerTff7b72.Td2a8ffannounceTb4b4b4(Te6edf3sourceTff7b72.Td2a8ffhashTb4b4b4)
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffSource announcedTa5d6ff"Tb4b4b4)

Tffa657printTb4b4b4(Ta5d6ff"Ta5d6ffRecipient: Ta5d6ff"Tb4b4b4, Te6edf3endTff7b72=Ta5d6ff"Ta5d6ff Ta5d6ff"Tb4b4b4)
Te6edf3recipient_hexhash Tff7b72= Tffa657inputTb4b4b4(Tb4b4b4)
Te6edf3recipient_hash Tff7b72= Tffa657bytesTff7b72.Td2a8fffromhexTb4b4b4(Te6edf3recipient_hexhashTb4b4b4)

Tff7b72if Tff7b72not Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffhas_pathTb4b4b4(Te6edf3recipient_hashTb4b4b4)Tb4b4b4:
Te6edf3RNSTff7b72.Td2a8fflogTb4b4b4(Ta5d6ff"Ta5d6ffDestination is not yet known. Requesting path and waiting for announce to arrive...Ta5d6ff"Tb4b4b4)
Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffrequest_pathTb4b4b4(Te6edf3recipient_hashTb4b4b4)
Tff7b72while Tff7b72not Te6edf3RNSTff7b72.Td2a8ffTransportTff7b72.Td2a8ffhas_pathTb4b4b4(Te6edf3recipient_hashTb4b4b4)Tb4b4b4:
Te6edf3timeTff7b72.Td2a8ffsleepTb4b4b4(T79c0ff0.1Tb4b4b4)

T8b949e# Recall the server identity
Te6edf3recipient_identity Tff7b72= Te6edf3RNSTff7b72.Td2a8ffIdentityTff7b72.Td2a8ffrecallTb4b4b4(Te6edf3recipient_hashTb4b4b4)

Te6edf3dest Tff7b72= Te6edf3RNSTff7b72.Td2a8ffDestinationTb4b4b4(Te6edf3recipient_identityTb4b4b4, Te6edf3RNSTff7b72.Td2a8ffDestinationTff7b72.Td2a8ffOUTTb4b4b4, Te6edf3RNSTff7b72.Td2a8ffDestinationTff7b72.Td2a8ffSINGLETb4b4b4, Ta5d6ff"Ta5d6fflxmfTa5d6ff"Tb4b4b4, Ta5d6ff"Ta5d6ffdeliveryTa5d6ff"Tb4b4b4)

T8b949e# This loop allows you to execute various actions for testing
T8b949e# and experimenting with the example scripts.
Tff7b72while Tff7b72TrueTb4b4b4:

T8b949e# Create a message that will be sent directly to the
T8b949e# destination over a Reticulum link:

Te6edf3lxm Tff7b72= Te6edf3LXMFTff7b72.Td2a8ffLXMessageTb4b4b4(Te6edf3destTb4b4b4, Te6edf3sourceTb4b4b4, Te6edf3random_msgsTb4b4b4[Te6edf3randomTff7b72.Td2a8ffrandintTb4b4b4(T79c0ff0Tb4b4b4,Tffa657lenTb4b4b4(Te6edf3random_msgsTb4b4b4)Tff7b72-T79c0ff1Tb4b4b4)Tb4b4b4]Tb4b4b4,
Te6edf3random_titlesTb4b4b4[Te6edf3randomTff7b72.Td2a8ffrandintTb4b4b4(T79c0ff0Tb4b4b4,Tffa657lenTb4b4b4(Te6edf3random_titlesTb4b4b4)Tff7b72-T79c0ff1Tb4b4b4)Tb4b4b4]Tb4b4b4,
Te6edf3desired_methodTff7b72=Te6edf3LXMFTff7b72.Td2a8ffLXMessageTff7b72.Td2a8ffDIRECTTb4b4b4, Te6edf3include_ticketTff7b72=Tff7b72TrueTb4b4b4)

T8b949e# Or, create an oppertunistic, single-packet message
T8b949e# for sending without first establishing a link:

T8b949e# lxm = LXMF.LXMessage(dest, source, "This is a test",
T8b949e# random_titles[random.randint(0,len(random_titles)-1)],
T8b949e# desired_method=LXMF.LXMessage.OPPORTUNISTIC, include_ticket=True)


T8b949e# Or, try sending the message via a propagation node:

T8b949e# router.set_outbound_propagation_node(bytes.fromhex("e75d9b6a69f82b48b6077cf2242d7499"))
T8b949e# lxm = LXMF.LXMessage(dest, source, random_msgs[random.randint(0,len(random_msgs)-1)],
T8b949e# random_titles[random.randint(0,len(random_titles)-1)],
T8b949e# desired_method=LXMF.LXMessage.PROPAGATED)

T8b949e# Finally dispatch the message to the LXMF message
T8b949e# router, which will handle the delivery according
T8b949e# to the specified message parameters and options:
Te6edf3routerTff7b72.Td2a8ffhandle_outboundTb4b4b4(Te6edf3lxmTb4b4b4)

T8b949e# Wait for user input before starting over
Tffa657inputTb4b4b4(Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────